package com.study.student_chuji.demos.Mapper;

import com.study.student_chuji.demos.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper {
    @Select("select * from user where username = #{username} and password = #{password}")
    public User checkUsernameAndPassword(User user);
    // 根据用户名查询用户
    User selectByUsername(@Param("username") String username);

    // 根据用户ID查询用户拥有的角色
    User selectUserRoles(@Param("userId") Long userId);
    // 新增用户管理方法
    List<User> selectAllUsers(); // 查询所有用户
    User selectById(@Param("id") Long id); // 根据ID查询用户
    int insert(User user); // 新增用户
    int update(User user); // 更新用户
    int delete(@Param("id") Long id); // 删除用户
    int deleteUserRoles(@Param("userId") Long userId); // 删除用户-角色关联
    int batchInsertUserRoles(@Param("userId") Long userId, @Param("roleIds") List<Long> roleIds); // 批量添加用户-角色关联
    int countByEmail(@Param("email") String email);
}
